import router from '@/router';
import axios from 'axios'
import { ElMessage } from 'element-plus';
/**
 * 创建axios实例
 */
const ENV = process.env.NODE_ENV
const host = ENV === 'development' ? 'http://127.0.0.1:3000' : 'http://127.0.0.1:3000'  // 这个后面的地址若有服务器可以改为域名

const service = axios.create({
    baseURL: host,
    timeout: '3000',
});

/**
 * 请求拦截
 */
service.interceptors.request.use((config) => {
    // console.log(config)
    // 只有当请求既不是登录，也不是注册的时候，才会往请求头部写入token
    if (config.url.indexOf('register') < 0 && config.url.indexOf('login') < 0) {
        config.headers.authorization = localStorage.getItem("token")
    }
    return config;
})

/**
 * 响应拦截
 */
service.interceptors.response.use((res) => {
    const { code, data, message } = res.data
    if (code === 0) {
        return data
    } else {
        ElMessage({
            message: message,
            type: "error",
        })
    }
    if (message === '身份认证失败') {
        router.push('/login')
    }
})

/**
 * 封装请求函数
 */
const request = (options) => {
    if (options.method === 'get') {
        options.params = options.data
    }
    return service(options)
}

export default request